package com.cskaoyan.javase.oop1._10packaging;
/**
 * 你觉得包装类型是怎么把一个基本数据类型变量变成对象的?
 * 很简单,把基本数据类型变量 封装进 对象中成员变量即可
 * 所有的包装类型都是用一个对应数据类型的成员变量value来存储值的
 *
 * 而这个value是用final修饰的,表示它是一个常量,它的取值一旦确定就不可以修改
 *      ---> 包装类型对象一旦创建完毕,就不能修改value的取值了
 *
 * 常量不能改,但是实际代码中我们是可以写代码修改它的值的,
 *      这是因为它的value虽然不能改变,但只要重新创建一个新的对象就可以了
 *      新的对象就有新的value,那么取值就可以改变了
 *
 * @since 10:13
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo3 {
    public static void main(String[] args) {
        /*Integer a = 10;
        Integer b = 20;
        swap(a, b);
        System.out.println("----------------");
        System.out.println(a);
        System.out.println(b);*/

        Integer a = 200;
        // Unnecessary unboxing 'a.intValue()'
        int i = a.intValue();
        // Unnecessary boxing '_1new Integer(200)'
        Integer b = new Integer(200);
        change(a);
        System.out.println(a);

    }


    // 交换引用
    public static void swap(Integer a , Integer b){
        Integer temp = a;
        a = b;
        b = temp;
        System.out.println(a);
        System.out.println(b);
    }

    public static void change(Integer a){
        a = 100;
    }
}
